]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
shell-app-usage: Fix several problems in xml parsing
authorMatthias Clasen <mclasen@redhat.com>
Fri, 30 Nov 2012 04:39:11 +0000 (23:39 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 1 Dec 2012 01:16:50 +0000 (20:16 -0500)
Coverity rightly complained about the context < 0 comparison.
In addition, context was shadowing the parameter of the same
name, and the loops over the attributes were unnecessarily
running all the way.

https://bugzilla.gnome.org/show_bug.cgi?id=689325

src/shell-app-usage.c

index 089956539274a205e9dbf16c295885c5b544b42a..bab217cd773601f042a59b9ef4338cba8a19f3bf 100644 (file)
@@ -785,16 +785,19 @@ shell_app_usage_start_element_handler  (GMarkupParseContext *context,
     }
   else if (strcmp (element_name, "context") == 0)
     {
-      char *context = NULL;
+      char *id = NULL;
       const char **attribute;
       const char **value;
 
       for (attribute = attribute_names, value = attribute_values; *attribute; attribute++, value++)
         {
           if (strcmp (*attribute, "id") == 0)
-            context = g_strdup (*value);
+            {
+              id = g_strdup (*value);
+              break;
+            }
         }
-      if (context < 0)
+      if (!id)
         {
           g_set_error (error,
                        G_MARKUP_ERROR,
@@ -803,7 +806,7 @@ shell_app_usage_start_element_handler  (GMarkupParseContext *context,
                        element_name);
           return;
         }
-      data->context = context;
+      data->context = id;
     }
   else if (strcmp (element_name, "application") == 0)
     {
@@ -816,7 +819,10 @@ shell_app_usage_start_element_handler  (GMarkupParseContext *context,
       for (attribute = attribute_names, value = attribute_values; *attribute; attribute++, value++)
         {
           if (strcmp (*attribute, "id") == 0)
-            appid = g_strdup (*value);
+            {
+              appid = g_strdup (*value);
+              break;
+            }
         }
 
       if (!appid)